home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 March / macformat-022.iso / Shareware City / Developers / src / out-of-phase-102-c / OutOfPhase 1.02 Source / OutOfPhase Folder / BuildInstrument.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-23  |  3.9 KB  |  122 lines  |  [TEXT/KAHL]

  1. /* BuildInstrument.h */
  2.  
  3. #ifndef Included_BuildInstrument_h
  4. #define Included_BuildInstrument_h
  5.  
  6. /* BuildInstrument module depends on */
  7. /* MiscInfo.h */
  8. /* Audit */
  9. /* Debug */
  10. /* Definitions */
  11. /* Memory */
  12. /* TrashTracker */
  13. /* CompilerScanner */
  14. /* InstrumentStructure */
  15. /* OscillatorSpecifier */
  16. /* OscillatorListSpecifier */
  17. /* LFOSpecifier */
  18. /* LFOListSpecifier */
  19. /* FixedPoint */
  20. /* DataMunging */
  21. /* Envelope */
  22. /* SampleSelector */
  23. /* ModulationSpecifier */
  24.  
  25. /* syntax errors */
  26. typedef enum
  27.     {
  28.         eBuildInstrNoError EXECUTE(= -17736),
  29.         eBuildInstrOutOfMemory,
  30.         eBuildInstrUnexpectedInput,
  31.         eBuildInstrExpectedInstrument,
  32.         eBuildInstrExpectedOpenParen,
  33.         eBuildInstrExpectedCloseParen,
  34.         eBuildInstrSomeRequiredInstrParamsMissing,
  35.         eBuildInstrExpectedSemicolon,
  36.         eBuildInstrExpectedInstrumentMember,
  37.         eBuildInstrMultipleInstrLoudness,
  38.         eBuildInstrSomeRequiredLFOParamsMissing,
  39.         eBuildInstrSomeRequiredOscillatorParamsMissing,
  40.         eBuildInstrExpectedNumber,
  41.         eBuildInstrExpectedStringOrIdentifier,
  42.         eBuildInstrExpectedLFOMember,
  43.         eBuildInstrMultipleLFOFreqEnvelope,
  44.         eBuildInstrSomeRequiredEnvelopeParamsMissing,
  45.         eBuildInstrMultipleLFOAmpEnvelope,
  46.         eBuildInstrMultipleLFOOscillatorType,
  47.         eBuildInstrExpectedLFOOscillatorType,
  48.         eBuildInstrMultipleLFOModulationType,
  49.         eBuildInstrMultipleLFOAddingMode,
  50.         eBuildInstrExpectedLFOModulationType,
  51.         eBuildInstrExpectedOscillatorMember,
  52.         eBuildInstrMultipleOscType,
  53.         eBuildInstrMultipleOscSampleList,
  54.         eBuildInstrMultipleOscModulators,
  55.         eBuildInstrMultipleOscLoudness,
  56.         eBuildInstrMultipleOscFreqMultiplier,
  57.         eBuildInstrMultipleOscFreqDivisor,
  58.         eBuildInstrMultipleOscMakeOutput,
  59.         eBuildInstrMultipleOscLoudnessEnvelope,
  60.         eBuildInstrMultipleOscIndexEnvelope,
  61.         eBuildInstrExpectedOscType,
  62.         eBuildInstrExpectedInteger,
  63.         eBuildInstrExpectedBoolean,
  64.         eBuildInstrExpectedEnvelopeMember,
  65.         eBuildInstrMultipleEnvTotalScaling,
  66.         eBuildInstrMultipleEnvPoints,
  67.         eBuildInstrExpectedSource,
  68.         eBuildInstrExpectedScale,
  69.         eBuildInstrExpectedOriginadjust,
  70.         eBuildInstrExpectedType,
  71.         eBuildInstrExpectedModulationTypeSpecifier,
  72.         eBuildInstrExpectedTarget,
  73.         eBuildInstrExpectedModulationTargetSpecifier,
  74.         eBuildInstrExpectedDelayOrOrigin,
  75.         eBuildInstrExpectedLevelOrScale,
  76.         eBuildInstrExpectedEnvPointMember,
  77.         eBuildInstrExpectedIntBetween1And3,
  78.         eBuildInstrEnvSustainPointAlreadyDefined,
  79.         eBuildInstrMultipleEnvPointAmpAccent1,
  80.         eBuildInstrMultipleEnvPointAmpAccent2,
  81.         eBuildInstrMultipleEnvPointAmpAccent3,
  82.         eBuildInstrMultipleEnvPointAmpAccent4,
  83.         eBuildInstrMultipleEnvPointAmpFreq,
  84.         eBuildInstrMultipleEnvPointRateAccent1,
  85.         eBuildInstrMultipleEnvPointRateAccent2,
  86.         eBuildInstrMultipleEnvPointRateAccent3,
  87.         eBuildInstrMultipleEnvPointRateAccent4,
  88.         eBuildInstrMultipleEnvPointRateFreq,
  89.         eBuildInstrMultipleEnvPointCurveSpec,
  90.         eBuildInstrUnresolvedOscillatorReferences,
  91.         eBuildInstrSomeSamplesDontExist,
  92.         eBuildInstrSomeWaveTablesDontExist,
  93.         eBuildInstrExpectedEnvelope,
  94.         eBuildInstrExpectedLFO,
  95.         eBuildInstrMultipleOscStereoBias,
  96.         eBuildInstrMultipleOscDisplacement,
  97.         eBuildInstrMultipleOscSurroundBias,
  98.         eBuildInserMultipleOscFreqAdder
  99.     } BuildInstrErrors;
  100.  
  101. /* forwards */
  102. struct InstrumentRec;
  103. struct SampleListRec;
  104. struct AlgoSampListRec;
  105. struct WaveTableListRec;
  106. struct AlgoWaveTableListRec;
  107.  
  108. /* take a block of text and parse it into an instrument definition.  it returns an */
  109. /* error code.  if an error occurs, then *InstrOut is invalid, otherwise it will */
  110. /* be valid.  the text file remains unaltered.  *ErrorLine is numbered from 1. */
  111. BuildInstrErrors                        BuildInstrumentFromText(char* TextFile, long* ErrorLine,
  112.                                                             struct InstrumentRec** InstrOut,
  113.                                                             struct SampleListRec* SampleList,
  114.                                                             struct AlgoSampListRec* AlgoSampList,
  115.                                                             struct WaveTableListRec* WaveTableList,
  116.                                                             struct AlgoWaveTableListRec* AlgoWaveTableList);
  117.  
  118. /* get a static null terminated string describing the error */
  119. char*                                                BuildInstrGetErrorMessageText(BuildInstrErrors ErrorCode);
  120.  
  121. #endif
  122.